/**
 * 
 */
package com.shifan.phone.action;

import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.shifan.phone.common.Message;
import com.shifan.phone.common.Tools;
import com.shifan.phone.model.AddressModel;
import com.shifan.phone.model.UserModel;
import com.shifan.phone.service.AddressModelService;

/**
 * 收货地址Action
 * @author TangLei
 * @date 2018年12月11日 下午3:57:13
 * @version 1.0
 */
@Controller
@RequestMapping("/address")
public class AddressModelAction {
	
	//注入收货地址Service接口
	@Resource
	private AddressModelService addressModelService;
	
	/**
	 * 增加或修改
	 * @param address 收货地址对象
	 * @return 信息对象
	 */
	@RequestMapping("/saveOrUpdate")
	@ResponseBody
	public Message saveOrUpdate(AddressModel address){
		//创建一个Message对象
		Message mes = new Message();
		//定义一个变量
		int rows = 0;
		//判断收货地址ID是否为空
		if(Tools.isEmpty(address.getAddressId())){
			//调用收货地址Service接口的增加的方法
			rows = addressModelService.insertSelective(address);
		}else {
			//调用收货地址Service接口的修改的方法
			rows = addressModelService.updateByPrimaryKeySelective(address);
		}
		//判断rows是否大于0
		if(rows > 0){
			//给message对象赋值
			mes.setState(Tools.STATE_YES);
			mes.setMsg("操作成功!");
		}else {
			//给message对象赋值
			mes.setState(Tools.STATE_NO);
			mes.setMsg("操作失败!");
		}
		//返回message对象
		return mes;
	}
	
	/**
	 * 根据ID查询
	 * @param addressId 收货地址ID
	 * @return 收货地址对象
	 */
	@RequestMapping("/findById")
	@ResponseBody
	public AddressModel findById(String addressId){
		//调用收货地址Service接口的根据ID查询的方法
		return addressModelService.selectByPrimaryKey(addressId);
	}
	
	/**
	 * 删除
	 * @param addressId 收货地址ID
	 * @return 信息对象
	 */
	@RequestMapping("/deletes")
	@ResponseBody
	public Message deletes(String addressId){
		//创建一个message对象
		Message mes = new Message();
		//调用收货地址Service接口的删除的方法
		int rows = addressModelService.deleteByPrimaryKey(addressId);
		//判断rows是否大于0
		if(rows > 0){
			//给message对象赋值
			mes.setState(Tools.STATE_YES);
			mes.setMsg("删除成功!");
		}else {
			//给message对象赋值
			mes.setState(Tools.STATE_NO);
			mes.setMsg("删除失败!");
		}
		//返回message对象
		return mes;
	}
	
	/**
	 * 根据用户ID查询所有
	 * @param session
	 * @return 收货地址集合
	 */
	@RequestMapping("/findByUserIdAllAddress")
	@ResponseBody
	public List<AddressModel> findByUserIdAllAddress(HttpSession session){
		//得到登录的用户对象
		UserModel user = (UserModel) session.getAttribute("login");
		//调用收货地址Service接口的根据用户ID查询所有的方法
		return addressModelService.findByUserIdAllAddress(user.getUsersId());
	}
}
